home *** CD-ROM | disk | FTP | other *** search
/ DS-CD ROM 2 1993 August / DS CD-ROM 2.Ausgabe (August 1993).iso / programm / ds0257 / lib.exe / GETVALUE.LIB < prev    next >
Text File  |  1992-02-02  |  1KB  |  122 lines

  1. #IF !LIB4A86
  2. #ELSE
  3. #IF !INTERN_LIB4A86_S
  4. INTERN_LIB4A86_S EQU 01
  5. JMP START
  6. #ENDIF
  7. #ENDIF
  8. FORMATCHAR DB '.'
  9. INVALIDBASE EQU 7001H
  10. KONVERTOVERFLOW EQU 7002H
  11. DIGIT?:
  12. SUB AL,'0'
  13. JC >L8
  14. CMP AL,10
  15. JB >L9
  16. ADD AL,'0'
  17. AND AL,0DFH
  18. SUB AL,'A'-10
  19. CMP AL,10
  20. JB >L8
  21. CMP AL,16
  22. L9:
  23. CMC
  24. L8:
  25. RET
  26. GETBINWORD:
  27. MOV CL,02H
  28. JMP SHORT INTERN_GETWORD
  29. GETOCTWORD:
  30. MOV CL,08H
  31. JMP SHORT INTERN_GETWORD
  32. GETDEZWORD:
  33. MOV CL,0AH
  34. JMP SHORT INTERN_GETWORD
  35. GETHEXWORD:
  36. MOV CL,010H
  37. JMP SHORT INTERN_GETWORD
  38. GETWORD:
  39. CMP CL,2
  40. JB >L8
  41. CMP CL,0FH
  42. JBE INTERN_GETWORD
  43. L8:
  44. MOV AX,INVALIDBASE
  45. STC
  46. RET
  47. INTERN_GETWORD:
  48. PUSH DX,BX
  49. CLD
  50. PUSH SI
  51. XOR CH,CH
  52. LODSB
  53. CALL DIGIT?
  54. JC >L8
  55. CMP AL,CL
  56. JAE >L8
  57. MOV BL,AL
  58. XOR BH,BH
  59. L00:
  60. LODSB
  61. CMP AL,CS:FORMATCHAR
  62. JE L00
  63. CALL DIGIT?
  64. JC >L1
  65. CMP AL,CL
  66. JAE >L8
  67. XOR AH,AH
  68. XCHG AX,BX
  69. MUL CX
  70. JC >L8
  71. ADD AX,BX
  72. JC >L8
  73. XCHG BX,AX
  74. OR DX,DX
  75. JZ L00
  76. L8:
  77. STC
  78. MOV AX,KONVERTOVERFLOW
  79. JMP >L9
  80. L1:
  81. MOV AX,BX
  82. CLC
  83. L9:
  84. POP CX
  85. PUSHF
  86. SUB CX,SI
  87. NEG CX
  88. DEC CX
  89. POPF
  90. POP BX,DX
  91. RET
  92. #IF !INTERN_CMARK0
  93. INTERN_CMARK0 EQU 01H
  94. INTERN_CMARK1:
  95. PUSH BP
  96. MOV BP,SP
  97. MOV BX,06H
  98. SUB CH,[BP+SI]
  99. SUB AH,[BX+SI]
  100. DEC SP
  101. DEC CX
  102. INC DX
  103. XOR AL,041H
  104. CMP B[02820H],DH
  105. INC BX
  106. SUB W[BX+SI],SP
  107. INC DX
  108. CS AND B[BP+DI+043H],DL
  109. DEC AX
  110. INC BP
  111. DEC BP
  112. DEC BP
  113. INC BP
  114. PUSH DX
  115. AND B[BP+SI],CH
  116. SUB CH,[BP+SI]
  117. POP DX
  118. MOV SP,BP
  119. POP BP
  120. RET
  121. #ENDIF
  122.